package com.principle.inversion;

public class DependecyInversion {
    public static void main(String[] args) {
        Person person = new Person();
        person.receive(new Email() );
    }
}
class Email{
    public String getInfo(){
       return "电子邮件信息：hello,world!";
    }
}
//完成Person接收消息的功能
//方式1完成
/*
* 1.简单，比较容易想到
* 2.如果获取的对象是微信，短信等等，则新增类，同时persons也要增加相应的接收方法
* 3.解决思路：引入一个抽象的接口 IReceiver，表示接收者，这样person类与接口 IReceiver 发生依赖
*   因为Email,WeiXin 等等属于接收的范围，他们各自实现IReceiver 接口就行，符合依赖倒转原则
* */
class Person{
    public void receive(Email email){
        email.getInfo();
    }
}

